[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][๋ ˆ๋ฒจ 1] ์‹ ๊ณ  ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ

๐Ÿ“• ๋ ˆ๋ฒจ 1์งœ๋ฆฌ ์‰ฌ์šด ๋ฌธ์ œ.

๋ฌธ์ œ

์‹ ์ž…์‚ฌ์› ๋ฌด์ง€๋Š” ๊ฒŒ์‹œํŒ ๋ถˆ๋Ÿ‰ ์ด์šฉ์ž๋ฅผ ์‹ ๊ณ ํ•˜๊ณ 
์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ผ๋กœ ๋ฐœ์†กํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.
๋ฌด์ง€๊ฐ€ ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‹œ์Šคํ…œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- ๊ฐ ์œ ์ €๋Š” ํ•œ ๋ฒˆ์— ํ•œ ๋ช…์˜ ์œ ์ €๋ฅผ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  - ์‹ ๊ณ  ํšŸ์ˆ˜์— ์ œํ•œ์€ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์œ ์ €๋ฅผ ๊ณ„์†ํ•ด์„œ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  - ํ•œ ์œ ์ €๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹ ๊ณ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ,
    ๋™์ผํ•œ ์œ ์ €์— ๋Œ€ํ•œ ์‹ ๊ณ  ํšŸ์ˆ˜๋Š” 1ํšŒ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
- k๋ฒˆ ์ด์ƒ ์‹ ๊ณ ๋œ ์œ ์ €๋Š” ๊ฒŒ์‹œํŒ ์ด์šฉ์ด ์ •์ง€๋˜๋ฉฐ,
  - ํ•ด๋‹น ์œ ์ €๋ฅผ ์‹ ๊ณ ํ•œ ๋ชจ๋“  ์œ ์ €์—๊ฒŒ ์ •์ง€ ์‚ฌ์‹ค์„ ๋ฉ”์ผ๋กœ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.
  - ์œ ์ €๊ฐ€ ์‹ ๊ณ ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ทจํ•ฉํ•˜์—ฌ
    ๋งˆ์ง€๋ง‰์— ํ•œ๊บผ๋ฒˆ์— ๊ฒŒ์‹œํŒ ์ด์šฉ ์ •์ง€๋ฅผ ์‹œํ‚ค๋ฉด์„œ ์ •์ง€ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.
  • ํฌ์ธํŠธ : k๋ฒˆ ์ด์ƒ ์‹ ๊ณ ๋œ ์œ ์ €๋Š” ๊ฒŒ์‹œํŒ ์ด์šฉ์ด ์ •์ง€๋˜๊ณ , ์ •์ง€๋  ๋•Œ ์‹ ๊ณ ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ •์ง€ ์‚ฌ์‹ค์„ ๋ฉ”์ผ๋กœ ๋ณด๋‚ธ๋‹ค. ์ด๋–„ ์œ ์ €์—๊ฒŒ ๋ช‡ ํšŒ ๋ฉ”์ผ์ด ๋ฐœ์†ก๋ ๊ฑด์ง€๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž„.
  • ๋ฌธ์ œ๋ฅผ ์ž˜ ์•ˆ์ฝ๊ณ  ํ–‡๊ฐˆ๋ ค์„œ ์ฒ˜์Œ์— ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์ž‘์„ฑํ–ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ๊ณ  ํฌ์ธํŠธ๋ฅผ ๋จผ์ € ์žก์•„์•ผํ•จ. ๊ตญ์–ด ํ‘ธ๋Š” ์ค„ ใ… 

ํ’€์ด

function solution(id_list, report, k) {
  const answer = {}

  // ์‹ ๊ณ  ์œ ์ € Objectํ™”
  const reportInfo = id_list.reduce((prev, id) => {
    prev[id] = new Set()

    return prev
  }, {})

  // ์‹ ๊ณ  ์œ ์ €๋“ค Set์— ํ‘ธ์‹œ
  report.forEach(data => {
    const [reportUser, reportedUser] = data.split(" ")

    reportInfo[reportedUser].add(reportUser)
  })

  // ์‹ ๊ณ ๋‹นํ•œ ์œ ์ € ์ •์ง€ ์—ฌ๋ถ€ ํ™•์ธ
  id_list.forEach(id => {
    if (reportInfo[id].size >= k) {
      // ์ •์ง€ ๋‹นํ•œ ์œ ์ € ๋ฉ”์ผ ์นด์šดํŠธ
      reportInfo[id].forEach(reportedId => {
        if (answer[reportedId]) answer[reportedId] += 1
        else answer[reportedId] = 1
      })
    }
  })

  return id_list.map(id => answer[id] || 0)
}
  • Map์œผ๋กœ ๊ด€๋ฆฌํ•ด์ฃผ์–ด๋„ ๋˜๋Š”๋ฐ, ๊ทธ๋ƒฅ Object๋งŒ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„.
  • ํ…Œ์ŠคํŠธ ๋ชจ๋‘ ํ†ต๊ณผ. ํ‘ธ๋Š”๋ฐ 30๋ถ„ ์ •๋„ ๊ฑธ๋ฆฐ ๋“ฏ. ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์‹œ๊ฐ„ ์ธก์ •๋„ ํ•ด์•ผํ•  ๋“ฏ.